<html>
<head><meta charset="utf-8"><title>compile times · general · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/index.html">general</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html">compile times</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="207697080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207697080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207697080">(Aug 21 2020 at 23:52)</a>:</h4>
<p>FWIW compile times have never been an issue for me. I think something that is hard to quantify about Rust which is how much time you <em>save</em> by having most of your errors being caught at compile time versus chasing them down at run-time. I find the latter much more stressful and difficult to debug. Improving compile times is great but it's more like the icing on the cake. <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="207697463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207697463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207697463">(Aug 21 2020 at 23:58)</a>:</h4>
<p>I think we should also put a number on what's fast and what's slow. I, for example, consider slower than 10 seconds for a clean build to be a potentially bad sign, and slower than 5 seconds for an incremental build to also be a bad sign. But I also mostly work on very base crates that don't pull in deps, and i'm sure a lot of others live in some other scale.</p>
<p>I know that any time i update my stuff installed via "cargo install" there's 50 - 400 deps in each thing and it really is "go get a coffee" time scales.</p>



<a name="207703492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207703492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207703492">(Aug 22 2020 at 02:37)</a>:</h4>
<p><span class="user-mention" data-user-id="219696">@XAMPPRocky</span> I absolutely agree that I'd rather a long compile that actually catches everything.</p>



<a name="207735633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735633">(Aug 22 2020 at 18:12)</a>:</h4>
<p><span class="user-mention silent" data-user-id="239881">Josh Triplett</span> <a href="#narrow/stream/217588-project-leads.20(public)/topic/Rust.20Survey.202020/near/207703492">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="219696">XAMPPRocky</span> I absolutely agree that I'd rather a long compile that actually catches everything.</p>
</blockquote>
<p>I think there's actually a value proposition for both &lt;fast compile, minimal checking&gt; and &lt;slow compile, strong checking&gt;. I'm very opposed to the general JavaScript-y principle of "keep running whenever possible" in code that's actually deployed to users, but I think there's potential benefit for a "prototype" compiler mode (in any language, not just Rust) that does its best to run your code despite its issues. This is somewhat like the difference "release" and "debug" compile modes, except I'd want it to be maximally permissive. Ideally, it would actually be somewhat interactive: if you could fix code errors while the prototype is running (somewhat like the live-debugging mode of some IDEs), that could be an excellent way to understand the meaning of certain errors before trying to correct them.</p>



<a name="207735642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735642">(Aug 22 2020 at 18:12)</a>:</h4>
<p>I think especially with lifetime errors, this approach could be helpful for understanding what's alive when.</p>



<a name="207735709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735709">(Aug 22 2020 at 18:14)</a>:</h4>
<p>I think the <code>cargo check</code> concept of &lt;fast but strong checking, no compile&gt; is a really good idea for iteration, but it's probably most beneficial to people who have a somewhat "abstract" approach to programming, generally thinking of software in terms of the source code semantics rather than in terms of runtime behavior.</p>



<a name="207735882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735882">(Aug 22 2020 at 18:18)</a>:</h4>
<blockquote>
<p>fix code errors while the prototype is running</p>
</blockquote>
<p>that sounds really amazing <span aria-label="smiley" class="emoji emoji-1f603" role="img" title="smiley">:smiley:</span> I've heard rumors of a REPL based on MIRI, maybe that could fit the 'keep running' interactive model?</p>



<a name="207735914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735914">(Aug 22 2020 at 18:19)</a>:</h4>
<p>One danger of adding a "minimal checking" mode to Rust is obviously that it could encourage people to release software compiled in that mode, which would be... very very bad for obvious reasons. I think that if Rust had something like what I'm describing, it absolutely should not have a way to turn off the "interactive" aspect.</p>



<a name="207735976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735976">(Aug 22 2020 at 18:20)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> Yeah, this is an idea I've had kicking around in my head for a long time, but unfortunately I haven't really even fleshed it out, let alone try to build such a thing.</p>



<a name="207735997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735997">(Aug 22 2020 at 18:21)</a>:</h4>
<p>Could we split this compile time discussion into a new topic?</p>



<a name="207735998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207735998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207735998">(Aug 22 2020 at 18:21)</a>:</h4>
<p>I do wonder how close MIRI is to that model already, though.</p>



<a name="207736015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207736015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207736015">(Aug 22 2020 at 18:21)</a>:</h4>
<p>Yeah, sorry, I meant for that to be a brief response to Josh and got carried away <span aria-label="embarrassed" class="emoji emoji-1f633" role="img" title="embarrassed">:embarrassed:</span></p>



<a name="207736156"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207736156" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> XAMPPRocky <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207736156">(Aug 22 2020 at 18:25)</a>:</h4>
<p>I don't think it's a problem, more like a perfect example of why topics are useful. <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="207736436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207736436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Notification Bot <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207736436">(Aug 22 2020 at 18:31)</a>:</h4>
<p>This topic was moved here from <a class="stream-topic" data-stream-id="217588" href="/#narrow/stream/217588-project-leads-.28public.29/topic/Rust.20Survey.202020">#project leads (public) &gt; Rust Survey 2020</a> by <span class="user-mention silent" data-user-id="116122">simulacrum</span></p>



<a name="207736507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/compile%20times/near/207736507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/compile.20times.html#207736507">(Aug 22 2020 at 18:32)</a>:</h4>
<p>/me cries in <a href="http://docs.rs">docs.rs</a><br>
<span class="user-mention silent" data-user-id="224471">Lokathor</span> <a href="#narrow/stream/122651-general/topic/compile.20times/near/207697463">said</a>:</p>
<blockquote>
<p>I think we should also put a number on what's fast and what's slow. I, for example, consider slower than 10 seconds for a clean build to be a potentially bad sign, and slower than 5 seconds for an incremental build to also be a bad sign. But I also mostly work on very base crates that don't pull in deps, and i'm sure a lot of others live in some other scale.</p>
<p>I know that any time i update my stuff installed via "cargo install" there's 50 - 400 deps in each thing and it really is "go get a coffee" time scales.</p>
</blockquote>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>